package com.wish233.model.protocol;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author WHH
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WishProtocol<T> {


    /**
     * 消息头
     */
    private Header header;

    /**
     * 消息体
     */
    private T body;



    @Data
    public static class Header {
        //魔数
        byte magicLow;
        byte magicHigh;

        //协议版本号
        byte version;

        //消息体长度
        int bodyLength;

        //序列化序号
        byte serializer;

        //消息类型 0请求 1相应 2心跳
        byte type;

        //消息状态 20 OK 40 bad request 50 server error
        byte status;

        //消息唯一id
        long requestId;
    }


}
